#ifndef _GPS_USART_H
#define _GPS_USART_H

#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/uart.h"
#include "driver/uart_select.h"
#include "driver/gpio.h"


/* 引脚和串口定义 */
#define GPS_USART_UX            UART_NUM_2
#define GPS_USART_TX_GPIO_PIN   GPIO_NUM_4
#define GPS_USART_RX_GPIO_PIN   GPIO_NUM_5

/* 串口接收相关定义 */
#define GPS_RX_BUF_SIZE         2048     /* 环形缓冲区大小 */

/* 函数声明 */


//初始化串口
void gps_usart_init(uint32_t baudrate); 

// 校验和验证函数
uint8_t calculate_checksum(const char *sentence) ;
bool validate_checksum(const char *sentence) ;


#include "cJSON.h"  // 包含 cJSON 库

// 定义 NMEA 句子解析函数
void parse_GNGGA(const char* sentence, cJSON* json) ;

void parse_GNRMC(const char* sentence, cJSON* json) ;

void parse_GPS_sentences(const char* sentences, cJSON* json) ;

#endif
